package com.gilight.base.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gilight.base.dto.*;
import com.gilight.base.model.ColdProduct;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author shr
 * @since 2021-07-15
 */
@Repository
public interface ColdProductMapper extends BaseMapper<ColdProduct> {
    void saveProductBase(ColdProductDto coldProductDto);
    void saveProductImg(ColdProductImgDto coldProductImgDto);
    void saveProductTag(ColdProductTagDto coldProductTagDto);
    void saveProductParameter(ColdProductParameterDto coldProductParameter);
    void saveProductParameterDetail(ColdProductParameterDetailDto coldProductParameterDetail);
    void setProductParameterRule(ColdProductParameterRuleDto coldProductParameterRuleDto);
    ColdProductDto getProductBase(@Param("productId")Long productId);
    List<ColdProductTagDto> getProductTag(@Param("productId")Long productId);
    List<ColdProductImgDto> getProductImg(@Param("productId")Long productId);
    List<ColdProductParameterDto> getProductParameter(@Param("productId")Long productId);
    List<ColdProductParameterDetailDto> getProductParameterDetail(@Param("parameterId")Long parameterId);

    List<ColdProductDto> getProductList(ColdProductQueryDto coldProductQueryDto);

    void updateProductBase(ColdProductDto coldProductDto);
    void deleteProductImg(@Param("productId")Long productId);
    void deleteProductTag(@Param("productId")Long productId);
    void deleteProductParameterDetail(@Param("productId")Long productId);
    void deleteProductParameter(@Param("productId")Long productId);

}
